A many-core central processing unit (CPU) denotes a CPU where 100 or 1,000 or more cores are integrated into one chip. A multicore CPU is being widely used at present, and the many-core CPU is expected to be widely used in the near future.
As interest in many-core processors increases, interest in a microkernel-based operating system (OS) for the many-core processors is increasing.
A collaboration between processes (or threads which are a subordinate concept of the processes) executed in the microkernel-based OS uses a message transfer method based on inter-process communication (IPC). This denotes that a performance of the IPC is closely associated with a performance of the microkernel-based OS.
Among various factors affecting the performance of the IPC, a factor affecting the performance of the IPC in a structure of the many-core CPU is a hop between cores included in the many-core CPU.
If the number of cores is 100, a message is transferred via a maximum of 20 hops, and if the number of cores is 1,000, a message is transferred via about 64 hops. A time taken in transferring a message via one hop is a one CPU cycle.
Considering that a time taken in unidirectional IPC is 36 to 316 CPU cycles in a conventional microkernel, a hop between cores to which a thread for performing IPC in a many-core is allocated affects IPC performance greatly.
Therefore, thread allocation where threads are allocated to cores in consideration of a hop between the cores is a very important factor for enhancing IPC performance. However, a thread allocation method for greatly enhancing IPC performance is not proposed yet.